package com.ruicar.afs.cloud.manage.outer.api.corporate.feign;

import com.ruicar.afs.cloud.common.core.util.IResponse;
import com.ruicar.afs.cloud.manage.outer.api.corporate.dto.CorporateTransferOperateDto;
import com.ruicar.afs.cloud.manage.outer.api.corporate.dto.ManageCorporateTransferClone;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * <p>Description: </p>
 *
 * @author ZC.GUO
 * @version 1.0
 * @date create on 2020-07-21 18:54
 */
@FeignClient(name = "corporateTransferForApply", url = "${com.greatwall.services.manage.url}")
public interface CorporateTransForApplyFeign {

    /**
     * 查询本人参与的对公结算案件（渠道端）
     * @author ZC.GUO
     * @param corporateTransferOperateDto 操作参数封装
     * @param headers 请求头
     * @return
     */
    @ApiOperation("查询当前用户参与的对公结算案件")
    @PostMapping(value = "corporateTrans/queryCorporateList")
    public IResponse queryCorporateList(@RequestBody CorporateTransferOperateDto corporateTransferOperateDto, @RequestHeader Map<String, String> headers);
    /**
     * 根据案件编号查询对公结算案件详情（渠道端）
     * @author ZC.GUO
     * @param caseNo 案件号
     * @param headers 请求头
     * @return
     */
    @ApiOperation("根据案件编号查询对公结算案件详情")
    @PostMapping(value = "corporateTrans/queryCorporateByCaseNo")
    public IResponse queryCorporateByCaseNo(@RequestParam("caseNo") String caseNo, @RequestHeader Map<String, String> headers);
    /**
     * 删除对公案件（渠道端）
     * @author ZC.GUO
     * @param id 案件号
     * @param headers 请求头
     * @return
     */
    @ApiOperation("删除对公案件")
    @PostMapping(value = "corporateTrans/deleteCorporateTransfer")
    public IResponse deleteCorporateTransfer(@RequestParam("id") Long id, @RequestHeader Map<String, String> headers);
    /**
     * 对公结算信息保存（渠道端）
     * @author ZC.GUO
     * @param manageCorporateTransferClone 对公结算案件信息封装
     * @param headers 请求头
     * @return
     */
    @ApiOperation("对公结算信息保存")
    @PostMapping(value = "corporateTrans/saveCorporate")
    public IResponse saveCorporate(@RequestBody ManageCorporateTransferClone manageCorporateTransferClone, @RequestHeader Map<String, String> headers);
    /**
     * 对公勾稽案件信息提交（渠道端）
     * @author ZC.GUO
     * @param manageCorporateTransferClone 对公结算案件信息封装
     * @param headers 请求头
     * @return
     */
    @ApiOperation("对公勾稽案件信息提交")
    @PostMapping(value = "corporateTrans/submitCorporate")
    public IResponse submitCorporate(@RequestBody ManageCorporateTransferClone manageCorporateTransferClone, @RequestHeader Map<String, String> headers);
}
